package com.yilin.tms.order.service.order;


import com.baomidou.mybatisplus.extension.service.IService;
import com.yilin.tms.core.application.PageData;
import com.yilin.tms.core.entity.order.goods.GoodsOrder;
import com.yilin.tms.core.entity.user.account.Account;

import java.util.HashMap;
import java.util.List;

public interface IGoodsService extends IService<GoodsOrder> {

    PageData<GoodsOrder> getGoodsOrderPage(Account loginUser, GoodsOrder query, Integer start, Integer limit);

    void recallGoodsOrder(Account loginUser, GoodsOrder goodsOrder);

    void recallGoodsOrderByOrganizeId(String organizeId);

    void recallGoodsOrderByAccountId(String accountId);

    void scrapGoodsOder(Account loginUser, GoodsOrder goodsOrder);

    void deleteGoodsOrder(Account loginUser, GoodsOrder goodsOrder);

    GoodsOrder getGoodsOrderByNo(String goodsOrderNo);

    List<GoodsOrder> getGoodsOrderListByDispatchOrderId(String dispatchOrderId);

    GoodsOrder getGoodsOrderDetail(Account loginUser, String goodsOrderId);

    PageData<GoodsOrder> getPublicGoodsOrderPage(GoodsOrder query, Integer start, Integer limit);

    void pushGoodOrderToTrucker(Account loginUser, GoodsOrder goodsOrder, Account truckerAccount);

    GoodsOrder saveGoodsOrder(Account loginUser, GoodsOrder goodsOrder);

    void releaseGoodsOrder(Account loginUser, GoodsOrder goodsOrder);

    List<GoodsOrder> getRunGoodsOrderListByAccountId(String accountId);

    List<GoodsOrder> getRunGoodsOrderListByOrganizeId(String organizeId);

    void timerReleaseGoodsOrder();

    void timerRecallGoodsOrder();

    HashMap<String, Boolean> orderTransportState(String goodsOrderNo);

    String wmsSaveGoodsOrder(Account loginUser, GoodsOrder goodsOrder);



}
